package ifrn.agendaweb.interceptador;

import ifrn.agendaweb.modelo.Usuario;
import ifrn.agendaweb.servico.UsuarioServico;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.context.SecurityContextHolder;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

public class LoginInterceptador extends HandlerInterceptorAdapter {

	@Autowired
	private UsuarioServico usuarioServico;
	@Autowired
	private Usuario usuarioSessao;

	@Override
	public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
		//HttpSession session = request.getSession();
		
		//usuarioSessao.setLogin(null);
		//System.out.println("\n\n\n\nNo interceptador (antes do if)"+ usuarioSessao.getLogin());
		
		//Usuario usuarioSessao = (Usuario) session.getAttribute("usuarioSessao");
		//if(usuarioSessao == null || usuarioSessao.getLogin() == null){
			
			Authentication auth = SecurityContextHolder.getContext().getAuthentication();
			Usuario usuario = new Usuario();
			usuario.setLogin(auth.getName());
			
			usuario = usuarioServico.recuperarUsuarioPorLogin(usuario);
			
			usuarioSessao.setEmail(usuario.getEmail());
			usuarioSessao.setId(usuario.getId());
			usuarioSessao.setLogin(usuario.getLogin());
			usuarioSessao.setNome(usuario.getNome());
		//}

		return super.preHandle(request, response, handler);
	}
}
